package com.suke.czx.modules.wx.handler;

import java.util.Map;

import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Component;

import com.suke.czx.common.utils.JsonUtils;
import com.suke.czx.modules.wx.builder.TextBuilder;

import me.chanjar.weixin.common.api.WxConsts.XmlMsgType;
import me.chanjar.weixin.common.error.WxErrorException;
import me.chanjar.weixin.common.session.WxSessionManager;
import me.chanjar.weixin.mp.api.WxMpService;
import me.chanjar.weixin.mp.bean.message.WxMpXmlMessage;
import me.chanjar.weixin.mp.bean.message.WxMpXmlOutMessage;

/**
 * @author Binary Wang(https://github.com/binarywang)
 */
@Component
public class MsgHandler extends AbstractHandler {

    @Override
    public WxMpXmlOutMessage handle(WxMpXmlMessage wxMessage,
                                    Map<String, Object> context, WxMpService weixinService,
                                    WxSessionManager sessionManager) {

        if (!wxMessage.getMsgType().equals(XmlMsgType.EVENT)) {
            //TODO 可以选择将消息保存到本地
        }
        if(StringUtils.indexOfAny(wxMessage.getContent(), "复听","回放","之前的","以前的")>=0){
        	 return new TextBuilder().build("点击菜单栏【学习计划】按钮，在页面内点击日期可以直接跳转到对应日期所学习的诗词！并在这个页面进行补打卡等操作。", wxMessage, weixinService);
        }
        
        if(StringUtils.indexOfAny(wxMessage.getContent(), "没有显示","失败","不显示","没成功","不上","不起")>=0){
       	 	return new TextBuilder().build("您好！若是在菜单栏的【学习计划】页面中未显示 今日已学习 ，请您关闭wifi，将手机网络切换至移动网络然后再次尝试打卡！若是显示今日已学习则为打卡成功！", wxMessage, weixinService);
        }
      
		//当用户输入关键词如“你好”，“客服”等，并且有客服在线时，把消息转发给在线客服
		//        try {
		//            if (StringUtils.startsWithAny(wxMessage.getContent(), "你好", "客服")
		//                && weixinService.getKefuService().kfOnlineList()
		//                .getKfOnlineList().size() > 0) {
		//                return WxMpXmlOutMessage.TRANSFER_CUSTOMER_SERVICE()
		//                    .fromUser(wxMessage.getToUser())
		//                    .toUser(wxMessage.getFromUser()).build();
		//            }
		//        } catch (WxErrorException e) {
		//            e.printStackTrace();
		//        }
        return null;
    }

}
